Einführung in die File Allocation Table (FAT)

Jede Diskette oder Festplatte, die nach dem FAT Dateisystem formatiert wurde, ist folgendermaßen aufgebaut:

Der Datei-Schreibvorgang
Das Betriebssystem schreibt Systeminformationen,wie die Dateigröße, die erste Cluster-Nummer in den Directory-Eintrag, die Positionsinformationen in den FAT, und die Daten selbst in den Datenbereich.

Der Datei-Lesevorgang
(1) Systeminformationen, wie Dateiname, Größe und erste Cluster-Nummer werden aus dem Directory-Eintrag ermittelt
(2) Weitere Cluster-Nummern werden aus der Dateizuordnungstabelle (FAT) ausfindig gemacht und die entsprechenden Cluster im Datenbereich eingelesen

 

Das Dateisystem besteht aus einer Anzahl von speziellen Bereichen für die Verwaltung des Datenträgers, die erstellt werden, wenn der Datenträger formatiert wird: der Master Boot Record, die Partitionstabelle,der Boot Record, die Dateizuordnungstabelle (danach ist das FAT System benannt worden), und das Wurzelverzeichnis (Root directory). Auf unterster Ebene gesehen, sind Disketten und Festplatten eingeteilt in Gruppen von 512 Bytes, sogenannte Sektoren. Das FAT System reserviert für Dateien Speicherplatz in Form von mehreren Sektoren, Cluster gennant.

Der Boot Record ist ein Sektor, der Programmcode enthält, welcher vom Computer ausgeführt wird. Der Master Boot Record ist der erste Boot Record, den der Computer beim ersten Zugriff auf die Festplatte ausführt. Darüber hinaus enthält ein Boot Record wichtige Informationen über das FAT Dateisystem, z.B. die Clustergröße, die Positionen von Dateizuordnungstabelle (FAT), Datenbereich (data area) und dem Wurzelverzeichnis (root).

Die Dateizuordnungstabelle (FAT), die sich hinter dem Boot Record befindet stellt eine Datenbank dar, welche Cluster-Speicherplatz mit Dateien assoziiert. Sie enthält einen Eintrag (jeder 12,16 oder 32 Bits groß) für jeden Cluster. Da die ersten zwei Einträge für das Dateisystem reserviert sind, ordnet man dem dritten und den folgenden Einträgen den Cluster-Speicherplatz zu (Datenbereich, data area). Dateien, die im Datenbereich abgespeichert werden, müssen nicht unbedingt aufeinander folgende Cluster belegen und daher muß das Betriebssystem (operating system, OS) wissen, wo sich die komplette Datei im Datenbereich befindet. Das ist die Aufgabe des FAT. Für jeden Cluster, der von der Datei verwendet wird und nicht der letzte Cluster ist, enthält der FAT-Eintrag die Nummer des nächsten Cluster, welche von der Datei belegt ist. Wenn ein Programm dem Betriebssystem mitteilt, auf eine Datei zugreifen zu wollen, muß das Betriebssystem zunächst den ersten Cluster der Datei lesen. Dann schaut es in dem korrespondierenden ersten Eintrag im FAT nach, um die nächste Cluster-Nummer zu ermitteln, bei welcher die Datei fortgesetzt wird. Nun liest es den im Datenbereich assoziierten Cluster und nachdem auch dieser vollständig gelesen wurde, wiederholt das Betriebssystem diese Methode solange, bis die komplette Datei gelesen wurde. Diese Art der Organisation in Form einer Kette nennt man auch FAT-Kette (FAT chain).

FAT Einträge können ein paar spezielle Werte enthalten, um anzuzeigen, daß

Aber woher weiß eigentlich das Betriebssystem, welche Dateien auf einer Festplatte sind, und wie findet es den ersten Cluster heraus? Genau das ist der die Aufgabe der Directory-Einträge (directory entries), welche ebenfalls im Datenbereich abgelegt sind. Jeder Directory-Eintrag hat eine Größe von 32 Byte und bietet folgende Informationen über eine Datei oder einen Ordner: Datei- oder Ordnername, Größe, erste Cluster-Nummer und seine Attribute.